Meme Generator

Questa guida offre un approccio pratico per implementare un'applicazione che utilizza le chiamate di funzione con Gemma. Questa tecnica può essere applicata a varie versioni del modello Gemma tramite un'attenta progettazione dei prompt. Puoi trovare ulteriori informazioni in Beyond the Chatbot: Agentic AI with Gemma.

Chiamate di funzione spiegate

La struttura comune per le chiamate di funzione prevede alcuni componenti chiave, progettati per consentire a Gemma di interagire con API o strumenti esterni.

  1. Descrivi gli strumenti
    Indica al modello gli "strumenti" (funzioni) che può utilizzare. È incluso quanto segue:

    • Descrizione della funzionalità dello strumento
    • Quali informazioni sono necessarie per lo strumento (parametri)
  2. L'utente pone una domanda
    Poni una domanda al modello o fornisci un'attività

  3. Gemma decide
    Il modello capisce se ha bisogno di uno strumento per rispondere alla tua domanda.

  4. Gemma richiede uno strumento
    Se è necessario uno strumento, Gemma genererà un codice con riga iniziale ```tool_code```

  5. Lo strumento fa il suo lavoro
    Lo strumento (funzione) prende le informazioni dal modello e fa ciò che deve fare.

  6. Lo strumento restituisce risultati
    Gemma si aspetta di ricevere il risultato racchiuso in ```tool_output```

  7. Gemma dà la risposta finale
    Il modello utilizza i risultati dello strumento per creare una risposta completa e accurata per te.

Suggerimenti utili

  • Schema JSON: l'utilizzo dello schema JSON per le definizioni dei parametri, sebbene non sia obbligatorio, offre i vantaggi di una struttura coerente e della convalida automatica.
  • Comprensione chiara: la qualità della descrizione della funzione è fondamentale per consentire al modello di identificare correttamente quando utilizzarla.
  • Gestione degli errori: una gestione degli errori efficace è essenziale per gestire i casi in cui la chiamata della funzione non va a buon fine o restituisce risultati imprevisti.
  • Procedura iterativa: a volte sono presenti più turni di conversazione tra il modello e le chiamate di funzione.

Prompt e output di esempio

Puoi trovare il codice di questa applicazione nel repository del codice di Gemma Cookbook.

Passaggi 1 e 2: descrivi lo strumento e fornisci un'attività

Un'immagine divertente di un gatto

Input: un'immagine divertente di un gatto
Input di testo:

If you decide to invoke any of the function(s), it should be wrapped with ```tool_code```.

You have access to the following tools.

* `generate_meme(image, top_text, middle_text, bottom_text)`: Generate a meme with the given parameters

Make a funny meme with this. "meme.jpg"

Passaggio 3: Gemma decide e richiede uno strumento

Questo prompt produrrà la seguente risposta:

Okay, here's a funny meme based on the image of the surprised cat:

```tool_code
generate_meme(image="meme.jpg", top_text="Me when I hear a creak", middle_text="Is it safe?", bottom_text="Probably not.")
```

Passaggio 4: lo strumento svolge la sua funzione

Elaborerai l'output del modello individuando i blocchi di codice, analizzando gli argomenti della funzione ed eseguendo le funzioni.

Output finale del generatore di meme